package com.baichang.taoshunda.service;

import com.baichang.framework.excelption.ServiceException;

import java.util.List;
import java.util.Map;

/**
 * Created by ${wushenglu} on 2018/5/21.
 */
public interface RyFriendService {
    /**
     * 添加好友
     *
     * @param userId   发起人融云编号
     * @param friendId 朋友编号
     * @param message  发起好友备注信息
     * @param user
     * @param friend
     * @return
     */
    Map<String, Object> invite(String userId, String friendId, String message, String user, String friend);

    /**
     * 同意
     *
     * @param userId
     * @param friendId
     * @return
     */
    boolean agree(String userId, String friendId);

    /**
     * 忽略
     *
     * @param userId
     * @param friendId
     * @return
     */
    boolean ignore(String userId, String friendId);

    /**
     * 删除
     *
     * @param userId
     * @param friendId
     * @return
     */
    boolean delete(String userId, String friendId);

    /**
     * 设置备注
     *
     * @param friendId
     * @param displayName
     * @param userId
     */
    boolean setDisplayName(String friendId, String displayName, String userId);

    /**
     * @param friendId
     * @param nowPage
     * @param pageSize @return
     */
    List<Map<String, Object>> all(String friendId, Integer nowPage, Integer pageSize);

    /**
     * @param friendId
     * @param userId
     * @return
     */
    Map<String, Object> profile(String friendId, String userId);

    /**
     * @param userId
     * @param nowPage
     * @param pageSize
     * @param friendShipStatus
     * @return
     */
    List<Map<String, Object>> inviteAllList(String userId, Integer nowPage, Integer pageSize, Integer friendShipStatus);

    /**
     * @param friendId
     * @param userId
     * @return
     */
    Map<String, Object> checkIsFriend(String friendId, String userId);

    /**
     * @param userId
     * @param selfUserId
     * @return
     */
    Object getUserInfoByUserId(String userId, String selfUserId) throws ServiceException;

    /**
     * @param userId
     * @param telPhone
     * @return
     */
    List<Map<String, Object>> findFriendsByAccount(String userId, String telPhone);

    /**
     * @param id
     * @return
     */
    boolean deleteHistory(Integer id);

    /**
     * @param userId
     * @param headPic
     * @param sex
     * @param name
     */
    void updateHeadPic(String userId, String headPic, String sex, String name);

    /**
     * 通过设置的备注   源用户的昵称  账号模糊查询
     *
     * @param userId 用户聊天编号
     * @param key    关键字
     * @return
     */
    List<Map<String, Object>> findFriend(String userId, String key);
}
